<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <button>你过来呀!下课了!</button>
</body>
<script>
    // - 一个关键字, 一个内置的引用常量
    // console.log(this);// window

    // - 在函数中都可以直接使用this
    // function fn(){
    //     console.log(this);
    // }
    // const obj = {
    //     run(){
    //         console.log(this);
    //     }
    // }
    // const t = ()=> console.log(this);

    // - this代表调用函数的当前对象
    // 1-
    // const obj = {
    //     fn(){
    //         console.log(this==obj);// true
    //     }
    // }
    // obj.fn();

    // 2
    // const btn = document.querySelector("button");
    // btn.onclick = function(){
    //     console.log(this === btn);// true
    // }

    // * 在定义函数时, this还没有确定, 只有在执行时才动态确定(绑定)。
    // （函数当中的this是由执行时的环境决定的）
    const obj = {
        fn
    }
    function fn(){
        console.log(this);
    }
    fn();
    fn.call({});

    obj.fn();

</script>
</html>